#ifndef __SCNS_LED_H__
#define __SCNS_LED_H__

#include "ScnsConfig.h"

#if defined(SCNS_LED_ENABLE)&&SCNS_LED_ENABLE==1

#include "ScnsYing.h"
#include "ScnsTimer.h"
#include "ScnsBspLed.h"

typedef enum
{
    SCNS_LED_SWITCH_ON=1,
    SCNS_LED_SWITCH_OFF=0,
}ScnsLedSwitch;

extern ScnsStatus scnsLedInit(ScnsLedEnum ledN);
extern void scnsLedSet(ScnsLedEnum ledN,ScnsLedSwitch status);
extern ScnsLedSwitch scnsLedGet(ScnsLedEnum ledN);
extern void scnsLedToggle(ScnsLedEnum ledN);
extern void scnsLedToggleAfter(ScnsLedEnum ledN,uint64 us);
extern void scnsLedToggleAfterTick(ScnsLedEnum ledN,uint64 tick);
extern void scnsLedSync(ScnsLedEnum ledN,ScnsLedEnum ledSync);
extern void scnsLedSyncToggle(ScnsLedEnum ledN,ScnsLedEnum ledSync);
extern void scnsLedGroupFlow(const ScnsLedEnum led[],uint32 n,uint64 us);
extern void scnsLedGroupFlowTick(const ScnsLedEnum led[],uint32 n,uint64 tick);
extern void scnsLedSetNoSync(ScnsLedEnum ledN,ScnsLedSwitch status);
#endif
#endif
